iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0

最後APP剩下小遊戲部分就完成了,其實剛開始要思考寫甚麼時,完全沒想法或者一些方案對於現在我所學無法做到等,浪費很多時間導致最後定型的方案沒有很滿意,所以這裡先下跪<(_ _)>

想想也不知不覺都連續上傳了30天,從剛開始介紹 安裝、開發環境、元件等到現在第30天最後APP最終篇,感覺好像只是剛開始發第一天的感覺(?

碎碎念先說到這,我們先進入主題~


最後APP

PlayActivity

  • 宣告
private TextView timerTextView;
private TextView clickCountTextView;
private TextView clickAreaTextView;
private Button restartButton;
private Button backButton;

private int clickCount = 0;
private CountDownTimer countDownTimer;
private boolean isGameOver = false;
  • 綁定元件與取得Intent
timerTextView = findViewById(R.id.play_timer_tv);
clickCountTextView = findViewById(R.id.play_clickCount_tv);
clickAreaTextView = findViewById(R.id.play_clickArea_tv);
restartButton = findViewById(R.id.play_restart_btn);
backButton = findViewById(R.id.play_back_btn);

Intent intent = getIntent();
  • 點擊區域,當點擊時數字增加,並將文字顯示出來
clickAreaTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                clickCount++;
                clickCountTextView.setText(String.valueOf(clickCount));
            }
        });
  • 重新開始按鈕、返回按鈕,之後呼叫開始遊戲
restartButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resetGame();
            }
        });
        
backButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
        
startGame();
  • 開始遊戲,設計倒數計時器並顯示出來,最後時間到停止點擊計數
 private void startGame() {
        clickCount = 0;
        clickCountTextView.setText(String.valueOf(clickCount));
        restartButton.setVisibility(View.GONE);

        countDownTimer = new CountDownTimer(30000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                timerTextView.setText(String.valueOf(millisUntilFinished / 1000));
            }

            @Override
            public void onFinish() {
                timerTextView.setText("時間到!");
                restartButton.setVisibility(View.VISIBLE);
                isGameOver = true; // 設定遊戲結束
                clickAreaTextView.setClickable(false); // 停用點擊區域
            }
        };
        countDownTimer.start();
    }
  • 重新開始遊戲
 private void resetGame() {
        if (countDownTimer != null) {
            countDownTimer.cancel(); // 停止之前的倒计时
        }
        isGameOver = false; // 重置遊戲狀態
        clickAreaTextView.setClickable(true); // 啟用點擊區域
        startGame();
    }

這樣就完成全部了,接著看一下執行畫面~

執行畫面

reference link

reference link

reference link

  • 小遊戲最後時間到
    https://ithelp.ithome.com.tw/upload/images/20241008/20168454femDTJJjRh.png

最後還是很感謝大家能看到這裡,之後有緣再見?但還是先不要

下台一鞠躬(❤️´艸`❤️)


上一篇
最後的APP(中篇) Day29
系列文
Android 元件總動員 - 運用與實踐元件指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言